Contents
  1. 1. 简单的实现ocr
  2. 2. 首先找到tesseract对应的window版本
  3. 3. 再者是pytesseract。
  4. 4. 最后是python Image 包。
  5. 5. 准备完成,开始dibug。现在code如下:
  6. 6. 出现如下错误:
    1. 6.1. 错误1.出现这个错误时好像还没有安装tesseract-ocr软件的windows版本。
    2. 6.2. 错误2.

简单的实现ocr

ubuntu ocr
这个能够完全在ubuntu17.10.1能够完全实现,需要注意的只是需要自己安装idle(Python的IDE),但是到了windows上就不太一样了。上文列出了三个需要安装的,一个是tesseract-ocr这个软件,还有一个pytesseract:用来使用python调用tesseract。还有ptyhon Image包。
接下来开始在windows上实现吧。(实验系统windows10)

首先找到tesseract对应的window版本

windows ocr。直接下载安装window的exe即可。然后把需要在系统变量path中指定路径,也可以在程序中进行说明:

1
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'

再者是pytesseract。

原文中也是pip安装。这里也同样。

最后是python Image 包。

本来打开link. 准备手动安装,然后用pip list查看python已经默认安装好了。这个link中有句话需要注意。就是Image包的引用,需要改成如下。

1
from PIL import Image

准备完成,开始dibug。现在code如下:

1
2
3
4
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
print pytesseract.image_to_string(Image.open('Screenshot_20180417-182235.jpg'))

出现如下错误:

错误1.出现这个错误时好像还没有安装tesseract-ocr软件的windows版本。

1
WindowsError: [Error 2] The system cannot find the file specified

文件找不到,估计不是文件找不到;因为如果把文件名字改成其他,则汇报出其他错误。在google上找到的一个解决方案。得到答案是可能找不到tesseract-ocr软件。除了安装好之外,还需要配置TESSDATA_PREFIX系统path

错误2.

1
UnicodeEncodeError: 'charmap' codec can't encode character u'\ufb01' in posistion31: character maps to <undefined>

肯定是编码问题。在google上找到的一个解决方案 . 看完搜索结果以为是读取的编码设置,后来想想有可能是print出错。代码上加上编码转换。如下:

1
print pytesseract.image_to_string(Image.open('Screenshot_20180417-182235.jpg')).encode("utf-8")

这下终于对了。

Contents
  1. 1. 简单的实现ocr
  2. 2. 首先找到tesseract对应的window版本
  3. 3. 再者是pytesseract。
  4. 4. 最后是python Image 包。
  5. 5. 准备完成,开始dibug。现在code如下:
  6. 6. 出现如下错误:
    1. 6.1. 错误1.出现这个错误时好像还没有安装tesseract-ocr软件的windows版本。
    2. 6.2. 错误2.